package com.example.warehouse.bus.service;


import com.example.warehouse.bus.pojo.entity.BusCustomer;
import com.example.warehouse.bus.pojo.param.BusCustomerAddNewParam;
import com.example.warehouse.bus.pojo.vo.BusCustomerStandardVO;
import com.example.warehouse.common.pojo.vo.PageData;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author Linger
 * @date 2023-07-03 11:31
 * @desciption: 处理客户数据的业务接口
 */
@Transactional
public interface IBusCustomerService {
    /**
     * 启用状态的显示文本
     */
    String ENABLE_TEXT[] = {"禁用", "启用"};
    /**
     * 添加公司
     *
     * @param busCustomerAddNewParam 客户数据
     */
    void addNewBusCustomer(BusCustomerAddNewParam busCustomerAddNewParam);

    /**
     * 删除客户
     *
     * @param id ID
     */
    void delete(Long id);
    /**
     * 更新客户
     *
     * @param busCustomer 更新客户数据
     */
    void update(BusCustomer busCustomer);

    BusCustomerStandardVO getStandardById(Long id);

    /**
     * 模糊查询
     * @param customerName 公司名称
     * @param connectionPerson 联系人姓名
     * @param phone 联系人手机号
     * @return 查询结果列表
     */
    PageData<BusCustomerStandardVO> queryByKeyWord(Integer pageNum,String customerName, String connectionPerson, String phone) ;

    /**
     * 查询客户列表,默认参数
     *
     * @param pageNum 页码
     * @return 列表
     */
    PageData<BusCustomer> list(Integer pageNum);
    PageData<BusCustomer> listAsc(Integer pageNum);
    PageData<BusCustomer> listDesc(Integer pageNum);
    /**
     * 查询客户列表
     *
     * @param pageNum  页码
     * @param pageSize 每页记录数
     * @return 客户列表
     */
    PageData<BusCustomer> list(Integer pageNum, Integer pageSize);


    void setDisable(Long id);

    void setEnable(Long id);
}
